home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 7 / FM Towns Free Software Collection 7.iso / data / pvap322a / pvaponln.plp < prev    next >
Text File  |  1993-11-30  |  11KB  |  379 lines

  1. /************************************************************************
  2. *    オンラインでの処理                        *
  3. ************************************************************************/
  4. /*    通信時間記録処理    */
  5. %RECTIME{
  6.     %time    @linetime;
  7.     %hh    time/3600;
  8.     %hh    @case(@nochar(hh),1,{im({0}|hh)},,{im(hh)});
  9.     %mm    (time-time/3600*3600)/60;
  10.     %mm    @case(@nochar(mm),1,{im({0}|mm)},,{im(mm)});
  11.     %ss    time-time/60*60;
  12.     %ss    @case(@nochar(ss),1,{im({0}|ss)},,{im(ss)});
  13.     write    (LOGPATH|{\CONNECT.DAT},
  14.         {電話番号 }|ap|
  15.         {  終了時間 }|@getdt|
  16.         {  通信時間 }|hh|{時間}|mm|{分}|ss|{秒\n});
  17. };
  18.  
  19. /*    受信待ちの設定    */
  20. %WAIT    {wait({60},STOP,{,J)=},,{,DL)=},,{,DLn)=},,{,Ftel)=},,{,UP)=},,
  21.             {,V)=},,{,C)=},,
  22.             {コマンド=},,
  23.             {番号またはコマンド=},,
  24.             {番号またはコマンド<FM>=},,
  25.             {番号またはコマンド<BM>=},);};
  26. %WAITa    {wait({60},STOP,{リターンキーを押して下さい=},{type({\n});WAITa},
  27.             {,J)=},,{,DL)=},,{,DLn)=},,{,Ftel)=},,{,UP)=},,
  28.             {,V)=},,{,C)=},,
  29.             {コマンド=},,
  30.             {番号またはコマンド=},
  31.             {番号またはコマンド<FM>=},,
  32.             {番号またはコマンド<BM>=},);};
  33. %WAITrb{
  34.     loop({
  35.     wait({900},STOP,
  36.         {TLn,AP,PF,J)=},,
  37.         {コマンド<FM>=},);
  38.     wait({1});
  39.     case(@laststr({13}),    {TLn,AP,PF,J)=},{im({No})},
  40.                 {コマンド<FM>=},{im({No})},,
  41.                         {im({Yes})});
  42.     });
  43. };
  44.  
  45. /*    一定時間内に文字列が受信出来なかった場合の処理    */
  46. %STOP{
  47.     SNDMSG({okasi_f.snd});
  48.     footnote({ホストの反応が鈍いです});
  49.     select({ホストの反応が鈍いです},
  50.         {10},    {case(REC,{Yes},{stoprec});
  51.             discon;
  52.             RECTIME;
  53.             stop},
  54.         { 回線切断 },
  55.             {case(REC,{Yes},{stoprec});
  56.             discon;
  57.             RECTIME;
  58.             stop},
  59.         { 手動切替 },{stop});
  60. };
  61.  
  62. /*    ログをジャンプコード別に保存の時の処理    */
  63. %LOGSAVE{
  64.     case    (SAVE,
  65.         {JUMPCODE},{case(preser,{ 1},
  66.                 {mkdir2(LOGPATH|{\}|JUMP);
  67.                 LOGFILE:=@crefile(LOGPATH|{\}|JUMP,{LOG});
  68.                 receive(LOGPATH|{\}|JUMP|{\}|LOGFILE);
  69.                 REC:={Yes}})});
  70. };
  71.  
  72. /*    未読タイトル取得時のログ保存    */
  73. %LOGSAVE2{
  74.     [Where]
  75.     mkdir2(TITLEPATH);
  76.     %TITLELOG @crefile2(TITLEPATH,{LOG});
  77.     case    (Where={FORUM}||Where={BBS}||Where={KAIGI},
  78.         {Yes},{write(TITLEPATH|{\}|TITLELOG,
  79.                 JUMP|{/}|Where|{/}|NUMBER2|{/\n})},
  80.         {No},{write(TITLEPATH|{\}|TITLELOG,
  81.                 JUMP|{/}|Where|{/}|NUMBER2|{/}|MAINNUM|{/\n})});
  82.     receive(TITLEPATH|{\}|TITLELOG);
  83. };
  84.  
  85. /*    ログを全体で一つに保存の時の処理    */
  86. %logsave{
  87.     case    (SAVE,
  88.         {WHOLE},{case    (preser,{ 1},
  89.                 {REC:={Yes};
  90.                 mkdir2(LOGPATH|{\VANLOG});
  91.                 LOGFILE:=@crefile(LOGPATH|{\VANLOG},{LOG});
  92.                 write    (LOGPATH|{\VANLOG\}|LOGFILE,
  93.                     {番号またはコマンド(H,Q,J)=});
  94.                 receive(LOGPATH|{\VANLOG\}|LOGFILE)})});
  95. };
  96.  
  97. /*    ログをボード別に保存の時の処理(SIG・CUG用)    */
  98. %LogSave{
  99.     case    (SAVE,
  100.         {BOARD},{case    (preser,{ 1},
  101.                 {mkdir2(LOGPATH|{\}|JUMP|{\}|WHERE|{\}|NUMBER2);
  102.                 LOGFILE:=@crefile(LOGPATH|{\}|JUMP|
  103.                     {\}|WHERE|{\}|NUMBER2,{LOG});
  104.                 receive(LOGPATH|{\}|JUMP|{\}|WHERE|
  105.                     {\}|NUMBER2|{\}|LOGFILE);
  106.                 REC:={Yes}})});
  107. };
  108.  
  109. /*    ログをボード別に保存の時の処理(BBS用)    */
  110. %LogSave2{
  111.     case    (SAVE,
  112.         {BOARD},{case    (preser,{ 1},
  113.                 {mkdir2(LOGPATH|{\}|JUMP|{\}|NUMBER2);
  114.                 LOGFILE:=@crefile(LOGPATH|{\}|JUMP|
  115.                     {\}|NUMBER2,{LOG});
  116.                 receive(LOGPATH|{\}|JUMP|
  117.                     {\}|NUMBER2|{\}|LOGFILE);
  118.                 REC:={Yes}})});
  119. };
  120.  
  121. /*    指定発言のログをボード別に保存の時の処理(SIG・CUG用)    */
  122. %LogSave3{
  123.     case    (SAVE,
  124.         {BOARD},{case    (preser,{ 1},
  125.                 {mkdir2(LOGPATH|{\}|JUMP|{\}|WHERE|{\}|FORUM);
  126.                 LOGFILE:=@crefile(LOGPATH|{\}|JUMP|
  127.                     {\}|WHERE|{\}|FORUM,{LOG});
  128.                 receive(LOGPATH|{\}|JUMP|{\}|WHERE|
  129.                     {\}|FORUM|{\}|LOGFILE);
  130.                 REC:={Yes}})});
  131. };
  132.  
  133. /*    指定発言のログをボード別に保存の時の処理(BBS用)    */
  134. %LogSave4{
  135.     case    (SAVE,
  136.         {BOARD},{case    (preser,{ 1},
  137.                 {mkdir2(LOGPATH|{\}|JUMP|{\}|FORUM);
  138.                 LOGFILE:=@crefile(LOGPATH|{\}|JUMP|
  139.                     {\}|FORUM,{LOG});
  140.                 receive(LOGPATH|{\}|JUMP|
  141.                     {\}|FORUM|{\}|LOGFILE);
  142.                 REC:={Yes}})});
  143. };
  144.  
  145. /*    未読が無かった場合の処理    */
  146. %LOGDEL{
  147.     case    (preser,{ 1},
  148.         {case    (SAVE,
  149.             {JUMPCODE},    
  150.             {case    (B={Yes},
  151.                 {No},
  152.                 {display({\n}|JUMP|
  153.                     {には未読の発言が}|
  154.                     {ありませんでしたので}|
  155.                     {ログを削除します\n});
  156.                 delfile(LOGPATH|{\}|JUMP|{\}|LOGFILE)})})});
  157. };
  158.  
  159. /*    不在通知の解除    */
  160. %FUZAI    {
  161.     footnote({不在通知を解除しています});
  162.     type({J MAIL\n});
  163.     wait({60},STOP,    {よろしいですか(Y,N)=},{type({\n});WAIT},
  164.             {よろしいですか=},{type({\n});WAIT},
  165.             {番号またはコマンド=},,
  166.             {,J)=},);
  167.     type({5\n});
  168.     WAIT;
  169.     type({2\n});
  170.     wait({60},STOP,    {よろしいですか(Y,N,J)=},    {type({\n})},
  171.             {よろしいですか=},        {type({\n})},
  172.             {不在者通知は設定されていません。},));
  173. };
  174.  
  175. /*    アップ・ダウンロードの処理    */
  176. %UPDOWNLOAD{
  177.     %Filechk @filechk(TEMPPATH|{\PVAPUP.DAT});
  178.     case(Filechk,{Yes},{setcdir2(DIR1);#PVAPUP.PLP});
  179.     %Filechk @filechk(TEMPPATH|{\PVAPDOWN.DAT});
  180.     case(Filechk,{Yes},{setcdir2(DIR1);#PVAPDOWN.PLP});
  181. };
  182.  
  183. /*    課金情報を見る    */
  184. %BILL1{
  185.     %BILL2{
  186.     footnote({課金情報を見ています});
  187.     %JUMP {RYOKIN};
  188.     type({J }|JUMP|{\n});
  189.     wait({60},STOP,    {よろしいですか(Y,N)=},{type({\n});WAIT},
  190.             {よろしいですか=},{type({\n});WAIT},
  191.             {番号またはコマンド=},,
  192.             {,J)=},);
  193.     case    (SAVE={JUMPCODE}||SAVE={BOARD},
  194.         {Yes},    {case    (preser,{ 1},
  195.                 {delfile(LOGPATH|{\料金情報.LOG});
  196.                 receive(LOGPATH|{\料金情報.LOG});
  197.                 REC:={Yes}})});
  198.     type({2\n});
  199.     WAITa;
  200.     case    (SAVE={JUMPCODE}||SAVE={BOARD},
  201.         {Yes},{case(REC,{Yes},{REC:={No};stoprec})});
  202.     };
  203.     case    (@getchar(@daylong,{16},{2})={07},
  204.         {No},    BILL2,
  205.         {Yes},    {display({\n7~8時の間は課金情報が見れません\n})});
  206. };
  207.  
  208. /*    ログアウト処理    */
  209. %LOGOUT{
  210.     %logout{
  211.     footnote({ログアウトします});
  212.     type({Q\n});
  213.     case(REC,{Yes},{REC:={No};stoprec});
  214.     wait(30,STOP,{SEE YOU AGAIN},);
  215.     discon;
  216.     RECTIME;
  217.     SNDMSG({owata_f.snd});
  218.     };
  219.  
  220.     logout;
  221.     case    (TITCHECK,
  222.         {Yes},    {setcdir2(DIR1);#PVAPTITL.PLP;
  223.             %Filechk @filechk(TEMPPATH|{\PVAPDOWN.DAT});
  224.             case    (Filechk,
  225.                 {Yes},    
  226.                 {SNDMSG({erande_f.snd});
  227.                 footnote({すぐにダウンロードしますか?});
  228.                 select({すぐにダウンロードしますか?},
  229.                     99999,,
  230.                 {  する  },
  231.                     {setcdir2(DIR1);#PVAPLGIN.PLP;
  232.                     logsave;
  233.                     setcdir2(DIR1);#PVAPDOWN.PLP;
  234.                     logout},
  235.                 { しない },)})});
  236.     case(Calami,    {MOPT},{stopterm},
  237.             {PVAP},{setcdir(DIR1);stop},
  238.             {POFF},{command({POFF.COM})});
  239. };
  240.  
  241. /*    オンラインでの処理選択    */
  242. %SELONLN{
  243.     var dovan[2];
  244.     var updown[2]; var fuzai[2]; var billchk[2]; var free [2];
  245.     var acceap[2]; var Acceap[7]; var preser[2];
  246.     var redial[2]; var Redial[4]; var timer[2];
  247.     var calami[2]; var Calami[4]; var ap[20]; var PERFORM[3];
  248.     dovan:=    {1};
  249.     updown:=@case(UPDOWN={No},{Yes},{im({2})},,{im({1})});
  250.     fuzai:=    {2};
  251.     billchk:=@case(BILLCHK,    {Yes},{im({1})},,{im({2})});
  252.     free:=    {3};
  253.     acceap:=@case(ACCEAP,    {1200},{im({1})},
  254.                 {2400},{im({2})},
  255.                 {PC-VAN+},{im({3})},,{im({2})});
  256.     preser:=@case(PRESER={Yes},{Yes},{im({1})},,{im({2})});
  257.     redial:=@case    (REDIAL,
  258.             {5},    {im({1})},
  259.             {10},    {im({2})},
  260.             {30},    {im({3})},
  261.             {9999},    {im({4})},,{im({4})});
  262.     timer:=    {1};
  263.     calami:= @case(CALAMI,    {PVAP},{im({2})},
  264.                 {MOPT},{im({3})},
  265.                 {POFF},{im({4})},,{im({1})});
  266.     loop({
  267.     %UFilechk @case    (@filechk(TEMPPATH|{\PVAPUP.DAT}),
  268.             {Yes},    {im({あり})},
  269.             {No},    {im({なし})});
  270.     %DFilechk @case    (@filechk(TEMPPATH|{\PVAPDOWN.DAT}),
  271.             {Yes},    {im({あり})},
  272.             {No},    {im({なし})});
  273.     SNDMSG({erande_f.snd});
  274.     footnote({現在のユーザー設定ファイル }|SETFILE1|
  275.         {  PC-VANでの処理設定ファイル }|SETFILE2);
  276.     %a @plane(
  277.         {c通信条件を設定して下さい\n}|
  278.         {r自動通信処理             /する /強制巡回 /しない\n}|
  279.         {rアップ・ダウンロード処理 /する /しない   \n}|
  280.         {s  アップロード予約『}|UFilechk|{』}|
  281.             {/  予約追加  / 確認・変更 \n}|
  282.         {s  ダウンロード予約『}|DFilechk|{』}|
  283.             {/  予約追加  / 確認・変更 \n}|
  284.         {r不在通知の解除           /する /しない   \n}|
  285.         {r課金情報の確認           /する /しない   \n}|
  286.         {rログの保存               /する /しない   \n}|
  287.         {r自由行動                 /最初     /最後 /しない\n}|
  288.         {rアクセスするAP         /1200bps  /2400bps  /PC-VAN+\n}|
  289.         {rリダイアル回数           /5 /10 /30 /無限\n}|
  290.         {r通信終了時 /PVAP継続 /PVAP終了 /MOPT終了 /電源切断\n}|
  291.         {r開始時間                 /即開始 /指定時刻 \n}|
  292.         {s/ 開始 / 戻る \n},
  293.         dovan,updown,fuzai,billchk,preser,free,acceap,
  294.         redial,calami,timer);
  295.     dovan:=    @head(@getline(a,1,1),{\n});
  296.     updown:=@head(@getline(a,2,1),{\n});
  297.     fuzai:=    @head(@getline(a,5,1),{\n});
  298.     billchk:=@head(@getline(a,6,1),{\n});
  299.     preser:=@head(@getline(a,7,1),{\n});
  300.     free:=    @head(@getline(a,8,1),{\n});
  301.     acceap:=@head(@getline(a,9,1),{\n});
  302.     redial:=@head(@getline(a,10,1),{\n});
  303.     calami:=@head(@getline(a,11,1),{\n});
  304.     timer:=    @head(@getline(a,12,1),{\n});
  305.     DOVAN:=    @case    (dovan,
  306.             { 1},{im({Yes})},
  307.             { 2},{im({FORCE})},
  308.             { 3},{im({No})});
  309.     BPS:=    @case    (acceap,
  310.             { 1},{im({1200})},
  311.             { 2},{im({2400})},
  312.             { 3},
  313.             {case    (@getchar(@nth(MODEM,2,{_}),1,4)=
  314.                 {1200},    {Yes},{im({1200})},
  315.                     {No},{im({2400})})});
  316.     Acceap:=@case    (acceap,
  317.             { 1},{im({1200})},
  318.             { 2},{im({2400})},
  319.             { 3},{im({PC-VAN+})});
  320.     Redial:=@case    (redial,
  321.             { 1},{im({5})},
  322.             { 2},{im({10})},
  323.             { 3},{im({30})},
  324.             { 4},{im({9999})});
  325.     Calami:=@case    (calami,
  326.             { 1},{im({CONT})},
  327.             { 2},{im({PVAP})},
  328.             { 3},{im({MOPT})},
  329.             { 4},{im({POFF})});
  330.     %upkak    @head(@getline(a,3,1),{\n});
  331.     %downkak@head(@getline(a,4,1),{\n});
  332.     %ok    @head(@getline(a,13,1),{\n});
  333.     case(ok,{ 1},    {case(@setforce,{Yes},online,{No},{im({Yes})})},
  334.         { 2},    {im({No})},,
  335.             {case(upkak,    { 1},{setcdir(DIR1);#PVAPUSET.PLP},
  336.                     { 2},{setcdir(DIR1);#PVAPUKAK.PLP});
  337.             case(downkak,    { 1},{setcdir(DIR1);#PVAPDSET.PLP},
  338.                     { 2},{setcdir(DIR1);#PVAPDKAK.PLP});
  339.             case    (ok={ 0}&&upkak={ 0}&&downkak={ 0},
  340.                 {Yes},{im({No})},{No},{im({Yes})})});
  341.     });
  342. };
  343. %setforce{
  344.     case    (DOVAN,
  345.         {FORCE},
  346.         {SNDMSG({erande_f.snd});
  347.         footnote({強制巡回のタイプを選択して下さい});
  348.         select({強制巡回のタイプを選択して下さい},
  349.             99999,{im({No})},
  350.             { 設定場所全巡回 },{DOVAN:={ALL};im({Yes})},
  351.             {  SIG全巡回  },{DOVAN:={SIG};im({Yes})},
  352.             {  BBS全巡回  },{DOVAN:={BBS};im({Yes})},
  353.             {  CUG全巡回  },{DOVAN:={CUG};im({Yes})},
  354.             {    日付無視    },{DOVAN:={DAY};im({Yes})},
  355.             {    時間無視    },{DOVAN:={TIME};im({Yes})},
  356.             {      戻る      },{im({No})})},,{im({Yes})});
  357. };
  358. %online{
  359.     %online2{
  360.     setcdir(DIR1);#PVAPLGIN.PLP;
  361.     case(fuzai,    { 1},{FUZAI});
  362.     case(free,    { 1},{setcdir2(DIR1);#PVAPFREE.PLP});
  363.     case(updown,    { 1},{UPDOWNLOAD});
  364.     logsave;
  365.     setcdir2(DIR1);#PVAPLOOP.PLP;
  366.     case(billchk,    { 1},{BILL1});
  367.     case(free,    { 2},{setcdir2(DIR1);#PVAPFREE.PLP});
  368.     LOGOUT;
  369.     };
  370.  
  371.     TIMER:={No};
  372.     PERFORM:={Yes};
  373.     TITCHECK:={No};
  374.     case(timer,    { 2}, {setcdir2(DIR1);#PVAPWAIT.PLP});
  375.     case(PERFORM,    {Yes},{online2;im({No})},,{im({Yes})});
  376. };
  377.  
  378. /*    実行    */
  379. SELONLN;